Podivne pretypovani

Otázka od: Jan Sebelík

19. 12. 2002 12:11

Nedavno jsem narazil na na tento problem, napr.

TADOCustomDataset ma protected property IndexFieldNames.
TADOTable ji publikuje, dokonce published.
TADOQuery ji nepublikuje.
TADODataSet ji (myslim) taky publikuje.

Mohu u TADOQuery nastavit IndexFieldNames napr. takto?

TADODataSet(ADOQuery).IndexFieldNames:= ...

Odpoved: MOHU.
Je to prasarna? JE.
Je to nekorektni? NENI.

Podle meho soudu, protoze TADOTabel, TADOQuery, TADODataset jsou vsichni
oddedeny od TADOCustomDataset, tak se nemuze nic zleho stat.
Pretypovat TADOQuery na TADOCustomDataSet je sice korektni, ale problem to
neresi, protoze IndexFieldNames jsou tam protected.

Jaky je vas nazor?

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 493 792 931 (mobil 776 347735)
=========================================

Odpovedá: Petr Fejfar

20. 12. 2002 0:38

From: "Jan Sebelík" <honza@haes.cz>

> Pretypovat TADOQuery na TADOCustomDataSet je sice
> korektni, ale problem to neresi,
> protoze IndexFieldNames jsou tam protected.

Kdyby nebyly protected, tak bys nemusel
pretypovavat  


> Jaky je vas nazor?

U vyznamnejsich projektu s delsim zivotnim cyklem
zpravidla vkladame z duvodu lepsi modifikovatelnosti programu mezi knihovny
a vlastni aplikaci jeste nase rozhrani.

Takze bychom v aplikaci primo nepouzili TADOQuery,
ale jeho potomka napr. TAppADOQuery a u nej bychom
publikovali tu vlastnost IndexFieldNames.


HTH, pf